/******************************************************************************/
/* Fichero:     VectorPersonas.java
/* Versión:     1.0
/* Autor:       Luis Maqueda
/* Fecha:       Mayo 2009
/* Proyecto:    AELANsoft cumpleaños
/* Descripción: La clase VectorPersonas es una clase para almacenar los
resultados de la consultas y búsquedas de la aplicación. Es un
vector de la clase vector de Java cuyas componentes	son de la
clase Persona.
/******************************************************************************/
package utiles;

import java.io.Serializable;
import java.util.Vector;

/******************************************************************************/
public class VectorPersonas extends Vector implements Serializable {
/******************************************************************************/

   // Variables de clase
   int nPagina;

   /****************************************************************************
    * Constructor de clase. Inicializa el numero de pagina.
    **************************************************************************/
   public VectorPersonas() {
      this.nPagina = 1;
   }

   /****************************************************************************
    * Pre: ExisteSigPagina = verdadero.
    * Post: Devuelve un vector con los siguientes 15 usuarios, o menos en caso
    * de que no existan 15.
    * @return Vector de personas correspondiente a la pagina siguiente.
    ***************************************************************************/
   public VectorPersonas SigPagina() {
      // Variables
      VectorPersonas aux = new VectorPersonas();

      this.nPagina++;
      for (int i = (this.nPagina-1) * 15; i < (this.nPagina-1) * 15 + 15 &&
         i < this.size(); i++) {
         aux.add(this.elementAt(i));
      }
      return aux;
   }

   /****************************************************************************
    * Pre: ExisteAntPagina = verdadero.
    * Post: Devuelve un vector con los anteriores 15 usuarios.
    * @return Vector de personas correspondiente a la pagina anterior.
    ***************************************************************************/
   public VectorPersonas AntPagina() {
      // Variables
      VectorPersonas aux = new VectorPersonas();

      this.nPagina--;
      for (int i = (this.nPagina-1) * 15; i < (this.nPagina-1) * 15 + 15
         && i < this.size(); i++) {
         aux.add(this.elementAt(i));
      }
      return aux;
   }

   /****************************************************************************
    * Devuelve un vector con los primeros 15 usuarios, o menos de 15 si se tiene
    * menos amigos.
    * @return Vector de personas correspondiente a la primera pagina.
    ***************************************************************************/
   public VectorPersonas PrimPagina() {
      // Variables
      VectorPersonas aux = new VectorPersonas();

      for (int i = 0; i < 15 && i < this.size(); i++) {
         aux.add(this.elementAt(i));
      }
      this.nPagina = 1;
      return aux;
   }

   /****************************************************************************
    * Devuelve verdadero si nPagina != 1
    * @return Devuelve cierto si existe una pagina anterior a la actual
    ***************************************************************************/
   public boolean ExisteAntPagina() {

      return this.nPagina > 1;
   }

   /****************************************************************************
    * devuelve nPagina * 15 < vector.longitud
    * @return Devuelve cierto si existe una pagina posterior a la actual
    ***************************************************************************/
   public boolean ExisteSigPagina() {

      return this.nPagina * 15 < this.size();
   }
}
